using System;
using System.Collections;
using System.Collections.Generic;

using Peradigm.Framework.Domain.Collections;
using Peradigm.Framework.Domain.Collections.Generic;

using Liberty.Domain.CaseManagement;
using Liberty.Domain.GrantManagement;
using Liberty.Domain.Kernel;
using Liberty.Domain.NoteManagement;
using Liberty.Domain.ServiceMemberManagement;
using Liberty.Persistence.CaseManagement;
using Liberty.Persistence.GrantManagement;
using Liberty.Persistence.Kernel;
using Liberty.Persistence.NoteManagement;

namespace Liberty.Application.Kernel
{
    [Serializable]
    public class AddressController : AbstractController
    {
        #region Constants
        #endregion

        #region Event Handlers
        #endregion

        #region Methods
        public List<State> AllStates()
        {
            return this.StateBroker.AllStates();
        }

        public State StateWith( string Province )
        {
            return this.StateBroker.StateWith( Province );
        }
        #endregion

        #region Properties
        public StateBroker StateBroker
        {
            get
            {
                if( null == this.i_StateBroker )
                {
                    this.i_StateBroker = new StateBroker( this.ConnectionString );
                }
                return i_StateBroker;
            }
            set
            {
                i_StateBroker = value;
            }
        }
        #endregion

        #region Private Methods
        #endregion

        #region Private Properties
        #endregion

        #region Construction and Finalization
        public AddressController()
            : base()
        {
        }
        #endregion

        #region Data Elements
        StateBroker i_StateBroker;
        #endregion
    }
}
